#ifndef __GlGameInterface_h__
#define __GlGameInterface_h__

#include "GlMain.h"

namespace GraphicLibrary
{
	class GameListener;

	class GlExport GameInterface
	{
		public:
			enum ExceptionList
			{
				ElDxInitializationError
			};

			virtual ~GameInterface();
			virtual void run(GameListener *game) = 0;

			inline static GameInterface* GetSingleton()	{return msSingleton;}
			inline static void Init(GameInterface *game)
			{
				if(msSingleton)
					delete msSingleton;
				msSingleton = game;
			}
			inline static void Destroy()
			{
				delete msSingleton;
				msSingleton = 0;
			}
		private:
			static GameInterface*	msSingleton;
	};
}

#endif // __GlGameInterface_h__
